<script>
export default {
	// 当uni-app 初始化完成时触发（全局只触发一次
	onLaunch: function() {
		console.log('App Launch')
		// 隐藏原生 tabbar
		uni.hideTabBar({})
	},
	// 当 uni-app 启动，或从后台进入前台显示
	onShow: function() {
		console.log('App Show')
		// 隐藏原生 tabbar
		uni.hideTabBar({})
	},
	// 当 uni-app 从前台进入后台
	onHide: function() {
		console.log('App Hide')
	},
	onLoad() {
		// 设置底部导航栏角标
		// uni.setTabBarBadge({
		// 	index: 0,
		// 	text: "3"
		// });
		// // 移除底部导航栏角标
		// uni.removeTabBarBadge({
		// 	index: 0
		// });
		// 同步获取系统信息
		uni.getSystemInfoSync({
			success: e => {
				this.setSystemInfo(e);
				this.windowWidth = e.windowWidth;
			}
		});
		// 同步获取启动参数
		uni.getLaunchOptionsSync({
			success: e => {
				this.setLaunchInfo(e);
			}
		});
	},
	// 监听页面不存在事件
	onPageNotFound: function (e) {
		console.log("尝试访问的页面不存在:", e.path);
		console.log("query:" + e.query + " isEntryPage" + e.isEntryPage);

		// 跳转到错误页面
		uni.redirectTo({
			// 错误页面
			// url: '/pages/errorPage/404'
		});

		// // 显示弹窗
		// uni.showToast({
		// 	title: '页面不存在',
		// 	icon: 'none',
		// 	mask: true,    // 是否显示透明蒙层
		// 	duration: 3000, // 提示的延迟时间，单位毫秒
		// 	position: 'center' // 纯文本轻提示显示位置
		// });
	},
	// 监听全局错误
	onError: function (error) {
		console.error("捕获到全局错误：", error);

		// 提示错误弹窗
		uni.showModal({
			title: "发生错误",
			content: "应用发生未知错误，请稍后重试或联系开发者。",
			showCancel: false
		});

		// 根据错误类型进行不同的处理
		if (error.message.includes("网络请求失败")) {
			// 处理网络请求失败的错误
			uni.showToast({
				title: "网络请求失败，请检查网络连接",
				icon: "none"
			});
		}
	},
	methods: {
		/**
		 * @description 存储当前设备信息
		 * @param deviceId      设备id
		 * @param deviceBrand   设备品牌
		 * @param deviceModel   设备型号
		 * @param deviceType    设备类型
		 * @param windowWidth   可使用窗口宽度
		 */
		setSystemInfo({ deviceId, deviceBrand, deviceModel, deviceType, windowWidth }) {
			uni.setStorageSync("deviceId", deviceId);
			uni.setStorageSync("deviceBrand", deviceBrand);
			uni.setStorageSync("deviceModel", deviceModel);
			uni.setStorageSync("deviceType", deviceType);
			uni.setStorageSync("windowWidth", windowWidth);
		},
		/**
		 * @description 存储当前启动参数
		 * @param path         启动路径
		 * @param query        启动时的query参数
		 * @param referrerInfo 来源信息
		 * @param launcher     应用启动来源
		 */
		setLaunchInfo({ path, query, referrerInfo, launcher }) {
			uni.setStorageSync("path", path);
			uni.setStorageSync("query", query);
			uni.setStorageSync("referrerInfo", referrerInfo);
			uni.setStorageSync("launcher", launcher);
		}
	},
	// 全局变量
	globalData: {
		tabbarBadge: 3,
	}
};
</script>

<style>
@import url("~@/static/iconfont/iconfont.css");
</style>

<style lang="scss">
@import "@/uni_modules/uview-ui/index.scss";
@import "pages/common/ulla.scss";
</style>
